package com.trh.dictionary.util;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Date;

public class CacheUtil {

    static String charset = Charset.defaultCharset().name();
    static File cacheDir = FileUtils.getFile(System.getProperty("cacheDir", "cache"));
    static String cacheTime = System.getProperty("cacheTime", "1440"); // one day by minutes

    public static synchronized boolean put(String specMd5, String tableInfoListStr) {
        File file = new File(cacheDir, specMd5 + ".json");
        if (file.exists()) {
            file.delete();
        }
        try {
            FileUtils.writeStringToFile(file, tableInfoListStr, charset);
            return true;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return false;
    }

    public static String get(String specMd5) {
        String tableInfoListStr = "";
        File file = new File(cacheDir, specMd5 + ".json");

        if (!file.exists()) {
            return tableInfoListStr;
        }

        if (file.lastModified() < new Date().getTime() - Integer.valueOf(cacheTime) * 60 * 1000) {
            file.delete();
            return tableInfoListStr;
        }

        try {
            tableInfoListStr = FileUtils.readFileToString(file, charset);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return tableInfoListStr;
    }
}
